#include <chrono>
#include <ctime>
#include <format>
#include <iostream>
#include <memory>
#include <string>
#include <thread>
using namespace std;

// int main() {
//     int i = 0;
//     cout << typeid(i).name() << endl;

//     for (;;) {
//         cout << "这是我的第 " << ++i << " 次循环" << endl;
//         this_thread::sleep_for(chrono::seconds(1));
//     }

//     return 0;
// }

// void test() {
//     cout << "there is test()" << endl;
// }

// string echo() {
//     static int i = 0;
//     return std::format("这是我第 {0} 次被调用", ++i);
// }

// int nothing() {
//     int i = 10;
//     double d = 20.0;
//     d += i;
//     d++;
//     i--;
//     i += i++;
//     return i;
// }

// int sum(int begin, int end) {
//     if (begin > end) swap(begin, end);

//     return ((begin + end) * (end - begin + 1) >> 1);
// }

// int main() {
//     cout << nothing() << endl;
//     return 0;
// }

// int getRand() { return rand() % 100; }

// int sum(int begin, int end) {
//     if (begin > end)
//         swap(begin, end);

//     return ((begin + end) * (end - begin + 1) >> 1);
// }

// void test(int) { cout << "test(int)" << endl; }
// void test(double) { cout << "test(double)" << endl; }
// void test() { cout << "test()" << endl; }

// int main() {
//     srand(static_cast<unsigned int>(time(nullptr)));
//     cout << sum(getRand(), getRand()) << endl;
//     test();
//     test(1);
//     test(1.2);
//     return 0;
// }

// bool check(unsigned int license) {
//     return 250U == license;
// }

// int main() {
//     unsigned int i = 100;
//     if (check(i)) cout << "验证成功" << endl;
//     else cout << "验证失败" << endl;
//     return 0;
// }

void testLeak() {
    // int* array = new int[20]{};
    // array[0] = 20;

    auto array = std::unique_ptr<int[]>(new int[20]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0});
    auto inner = array.get();
    for (int i = 0; i < 20; ++i) {
        cout << inner[i] << " ";
    }
    cout << endl;
}

int main() {
    testLeak();
    return 0;
}